#pragma once

#include <eigen3/Eigen/Core>

#include "object_detect_info.h"

namespace perception::camera {

struct ObjectTrackAttr {
    int track_id = -1; //
    float theta = 0; // 角度
    Point3f direction; // 依赖 theta计算出
    Point3f velocity; // 速度，虚拟速度
    bool is_artificial = false; // 补框
    Point3f local_center;
    int motion_state = 0; // 静止/运动
    Eigen::Matrix3f velocity_uncertainty;

    double x = 0;
    double y = 0;
    double hea = 0;
    double length = 0;
    double width = 0;
    double speedx = 0;
    double speedy = 0;
};

struct ObjectTrackInfo {
    ObjectDetectInfo detect;
    ObjectTrackAttr tracker;
};

using ObjectTrackInfoPtr = std::shared_ptr<ObjectTrackInfo>;

}